[INFO] cloning repository https://github.com/KushalMeghani1644/NPU-rs
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KushalMeghani1644/NPU-rs" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKushalMeghani1644%2FNPU-rs", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKushalMeghani1644%2FNPU-rs'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 752807c46eecf0e23e789b1725800cdb44a2f211
[INFO] checking KushalMeghani1644/NPU-rs against 40527f3e444fde1deb361751bdef9b9e11d1b971+rustflags=--cfg crater_hack --force-warn invalid-c-variadic-arguments for pr-162478
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKushalMeghani1644%2FNPU-rs" "/workspace/builds/worker-0-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-0-tc2/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/KushalMeghani1644/NPU-rs
[INFO] finished tweaking git repo https://github.com/KushalMeghani1644/NPU-rs
[INFO] tweaked toml for git repo https://github.com/KushalMeghani1644/NPU-rs written to /workspace/builds/worker-0-tc2/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KushalMeghani1644/NPU-rs on toolchain 40527f3e444fde1deb361751bdef9b9e11d1b971
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KushalMeghani1644/NPU-rs already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:25:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | homepage = "https://github.com/KushalMeghani1644/NPU-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 | repository = "https://github.com/KushalMeghani1644/NPU-rs"
[INFO] [stderr]    |              ---------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `npu-rs` (manifest) generated 2 warnings
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] [stderr]     Blocking waiting for file lock on package cache
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-0-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-m" "1610612736" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:8683fc1fc2eb5c9ac98e0d076ab094b2ffac7f99da555d2b6a2e27f346de2ec7" "sleep" "infinity", kill_on_drop: false }`
[INFO] [stdout] 8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117
[INFO] running `Command { std: "docker" "start" "8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "exec" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid --cfg crater_hack --force-warn invalid-c-variadic-arguments" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-w" "/opt/rustwide/workdir" "--user" "0:0" "8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117" "/opt/rustwide/cargo-home/bin/cargo" "+40527f3e444fde1deb361751bdef9b9e11d1b971" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stderr] warning: explicit `package.readme` can be inferred
[INFO] [stderr]   --> Cargo.toml:29:1
[INFO] [stderr]    |
[INFO] [stderr] 29 | readme = "README.md"
[INFO] [stderr]    | ^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::manual_readme` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.readme`
[INFO] [stderr] warning: `package.homepage` is redundant with `package.repository`
[INFO] [stderr]   --> Cargo.toml:25:12
[INFO] [stderr]    |
[INFO] [stderr] 25 | homepage = "https://github.com/KushalMeghani1644/NPU-rs"
[INFO] [stderr]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stderr] ...
[INFO] [stderr] 30 | repository = "https://github.com/KushalMeghani1644/NPU-rs"
[INFO] [stderr]    |              ---------------------------------------------
[INFO] [stderr]    |
[INFO] [stderr]    = note: `cargo::redundant_homepage` is set to `warn` by default
[INFO] [stderr] help: consider removing `package.homepage`
[INFO] [stderr] warning: `npu-rs` (manifest) generated 2 warnings
[INFO] [stderr]    Compiling libc v0.2.177
[INFO] [stderr]    Compiling quote v1.0.41
[INFO] [stderr]     Checking memchr v2.7.6
[INFO] [stderr]     Checking regex-syntax v0.8.8
[INFO] [stderr]     Checking log v0.4.28
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]    Compiling matrixmultiply v0.3.10
[INFO] [stderr]     Checking anstream v0.6.21
[INFO] [stderr]     Checking jiff v0.2.15
[INFO] [stderr]    Compiling syn v2.0.107
[INFO] [stderr]     Checking aho-corasick v1.1.3
[INFO] [stderr]     Checking serde_json v1.0.145
[INFO] [stderr]     Checking num-complex v0.4.6
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking parking_lot_core v0.9.12
[INFO] [stderr]     Checking num_cpus v1.17.0
[INFO] [stderr]     Checking parking_lot v0.12.5
[INFO] [stderr]     Checking ndarray v0.16.1
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking regex-automata v0.4.13
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling serde_derive v1.0.228
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking regex v1.12.2
[INFO] [stderr]     Checking env_filter v0.1.4
[INFO] [stderr]     Checking env_logger v0.11.8
[INFO] [stderr]     Checking serde v1.0.228
[INFO] [stderr]     Checking npu-rs v0.1.2 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[INFO] [stdout]   |               ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[INFO] [stdout]   |               ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error[E0601]: `main` function not found in crate `simple_infer`
[INFO] [stdout]   |
[INFO] [stdout]   = note: consider adding a `main` function to `examples/simple_infer.rs`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] For more information about this error, try `rustc --explain E0601`.
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[INFO] [stdout]   |               ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeviceState`
[INFO] [stdout]   --> src/main.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use device::{NpuDevice, DeviceInfo, DeviceState};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `ComputationGraph`, `ComputeNode`, `GraphOptimizer`, and `QuantConverter`
[INFO] [stdout]  --> examples/full_inference_pipeline.rs:4:17
[INFO] [stdout]   |
[INFO] [stdout] 4 |     QuantStats, QuantConverter, PTQEngine, GraphOptimizer, ComputationGraph,
[INFO] [stdout]   |                 ^^^^^^^^^^^^^^             ^^^^^^^^^^^^^^  ^^^^^^^^^^^^^^^^
[INFO] [stdout] 5 |     ComputeNode, Profiler, ProfileEvent,
[INFO] [stdout]   |     ^^^^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `npu-rs` (example "simple_infer") due to 1 previous error
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: unused imports: `ArrayD` and `IxDyn`
[INFO] [stdout]  --> src/optimizer.rs:2:15
[INFO] [stdout]   |
[INFO] [stdout] 2 | use ndarray::{ArrayD, IxDyn};
[INFO] [stdout]   |               ^^^^^^  ^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::execution::ExecutionContext`
[INFO] [stdout]  --> src/profiler.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 | use crate::execution::ExecutionContext;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `crate::error::Result`
[INFO] [stdout]  --> src/profiler.rs:4:5
[INFO] [stdout]   |
[INFO] [stdout] 4 | use crate::error::Result;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `DeviceState`
[INFO] [stdout]   --> src/main.rs:15:37
[INFO] [stdout]    |
[INFO] [stdout] 15 | use device::{NpuDevice, DeviceInfo, DeviceState};
[INFO] [stdout]    |                                     ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:39:29
[INFO] [stdout]    |
[INFO] [stdout] 39 |         let a_2d = a.view().into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `#[warn(deprecated)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:42:29
[INFO] [stdout]    |
[INFO] [stdout] 42 |         let b_2d = b.view().into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                             ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:81:38
[INFO] [stdout]    |
[INFO] [stdout] 81 |             let a_slice = a_slice_2d.into_shape((m, k)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: use of deprecated method `ndarray::impl_methods::<impl ndarray::ArrayBase<S, D>>::into_shape`: Use `.into_shape_with_order()` or `.to_shape()`
[INFO] [stdout]   --> src/compute.rs:84:38
[INFO] [stdout]    |
[INFO] [stdout] 84 |             let b_slice = b_slice_2d.into_shape((k, n)).map_err(|_| {
[INFO] [stdout]    |                                      ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tensor.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl Tensor {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  21 |     pub fn zeros(shape: &[usize]) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn from_scalar(value: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn sub(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn mul(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn div(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn sigmoid(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DeviceNotAvailable`, `MemoryError`, `UnsupportedOperation`, `PerformanceError`, and `SyncTimeout` are never constructed
[INFO] [stdout]   --> src/error.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum NpuError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  9 |     #[error("Device not available")]
[INFO] [stdout] 10 |     DeviceNotAvailable,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     MemoryError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     UnsupportedOperation(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     PerformanceError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     SyncTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NpuError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_allocations` is never read
[INFO] [stdout]   --> src/memory.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct MemoryStats {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub num_allocations: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryStats` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `deallocate`, `get_available_bytes`, `has_capacity`, and `reset` are never used
[INFO] [stdout]   --> src/memory.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MemoryManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn allocate(&self, bytes: usize) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn deallocate(&self, bytes: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_available_bytes(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_capacity(&self, bytes: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `allocate_buffer` is never used
[INFO] [stdout]    --> src/memory.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl MemoryPool {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn allocate_buffer(&self, size: usize) -> Result<Vec<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/perf_monitor.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerformanceMonitor {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `batched_gemm` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl MatMulUnit {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn batched_gemm(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn estimate_tops(&self, m: usize, k: usize, n: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `conv1x1` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl ConvUnit {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn conv1x1(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn estimate_tops(&self, batch: usize, height: usize, width: usize, c_in: usize, c_out: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Computing` and `Error` are never constructed
[INFO] [stdout]   --> src/device.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum DeviceState {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Computing,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 14 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compute_units`, `frequency_mhz`, `power_tdp_watts`, and `vendor` are never read
[INFO] [stdout]   --> src/device.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct DeviceInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub compute_units: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub frequency_mhz: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub power_tdp_watts: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub vendor: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `get_memory_pool`, and `shutdown` are never used
[INFO] [stdout]    --> src/device.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl NpuDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn reset(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn get_memory_pool(&self) -> MemoryPool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn shutdown(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeviceRegistry` is never constructed
[INFO] [stdout]    --> src/device.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct DeviceRegistry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `get_device`, and `num_devices` are never used
[INFO] [stdout]    --> src/device.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl DeviceRegistry {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 180 |     /// Create a new device registry.
[INFO] [stdout] 181 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn register(&mut self, device: Arc<NpuDevice>) -> Result<u32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn get_device(&self, device_id: u32) -> Result<Arc<NpuDevice>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn num_devices(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conv_unit` is never read
[INFO] [stdout]   --> src/execution.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct ExecutionContext {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     conv_unit: ConvUnit,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `execute_batched_matmul`, `execute_conv1x1`, `get_metrics`, and `get_device` are never used
[INFO] [stdout]    --> src/execution.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn execute_batched_matmul(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn execute_conv1x1(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_metrics(&self) -> crate::perf_monitor::PerformanceMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn get_device(&self) -> Arc<NpuDevice> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchScheduler` is never constructed
[INFO] [stdout]    --> src/execution.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct BatchScheduler {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `submit_batch`, `get_context`, and `get_batch_size` are never used
[INFO] [stdout]    --> src/execution.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl BatchScheduler {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 118 |     /// Create a new batch scheduler.
[INFO] [stdout] 119 |     pub fn new(device: Arc<NpuDevice>, batch_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn submit_batch(&self, operations: Vec<(&ArrayD<f32>, &ArrayD<f32>)>) -> Result<Vec<ArrayD<f32>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_context(&self) -> &ExecutionContext {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn get_batch_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load_from_path` and `validate_input` are never used
[INFO] [stdout]   --> src/model.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ModelRuntime {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn load_from_path(_path: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn validate_input(&self, shape: &[usize]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DepthwiseConvolution`, `Activation`, `BatchNorm`, `Pooling`, `Concat`, and `Add` are never constructed
[INFO] [stdout]    --> src/model.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub enum LayerType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     DepthwiseConvolution,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     PointwiseConvolution,
[INFO] [stdout] 100 |     Activation,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 101 |     BatchNorm,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 102 |     Pooling,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 103 |     Concat,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 104 |     Add,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayerType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/model.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Layer {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 110 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_layers` is never used
[INFO] [stdout]    --> src/model.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl NeuralNetwork {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_layers(&self) -> &[Layer] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_frequency`, `enable_power_gating`, and `disable_power_gating` are never used
[INFO] [stdout]    --> src/power.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl DvfsController {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_frequency(&self, domain: PowerDomain, level: usize) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn enable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn disable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `optimize`, `apply_fusion`, `apply_constant_folding`, and `eliminate_dead_code` are never used
[INFO] [stdout]   --> src/optimizer.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl GraphOptimizer {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn optimize(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn apply_fusion(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     fn apply_constant_folding(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn eliminate_dead_code(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_count` is never read
[INFO] [stdout]   --> src/optimizer.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ComputationGraph {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub node_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> src/optimizer.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ComputationGraph {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn validate(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kernel_shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:145:19
[INFO] [stdout]     |
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout]     |     -----------   ^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `activation_type` is never read
[INFO] [stdout]    --> src/optimizer.rs:147:18
[INFO] [stdout]     |
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout]     |     ----------   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |     Input { shape: Vec<usize> },
[INFO] [stdout]     |     -----   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:150:14
[INFO] [stdout]     |
[INFO] [stdout] 150 |     Output { shape: Vec<usize> },
[INFO] [stdout]     |     ------   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MatMul` and `Constant` are never constructed
[INFO] [stdout]    --> src/optimizer.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum ComputeNode {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout] 146 |     MatMul { output_shape: Vec<usize> },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout] 148 |     Constant { value: f32 },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time_ms` is never read
[INFO] [stdout]   --> src/profiler.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ProfileEvent {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 15 |     pub event_name: String,
[INFO] [stdout] 16 |     pub start_time_ms: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_efficiency_gops_per_watt` is never used
[INFO] [stdout]   --> src/profiler.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ProfileEvent {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_efficiency_gops_per_watt(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/profiler.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Profiler {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `event_count` is never read
[INFO] [stdout]   --> src/profiler.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct ProfileReport {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub event_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileReport` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/tensor.rs:21:12
[INFO] [stdout]     |
[INFO] [stdout]  10 | impl Tensor {
[INFO] [stdout]     | ----------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  21 |     pub fn zeros(shape: &[usize]) -> Self {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  47 |     pub fn from_scalar(value: f32) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  64 |     pub fn print(&self) {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  76 |     pub fn sub(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  83 |     pub fn mul(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout]  90 |     pub fn div(&self, other: &Self) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn sigmoid(&self) -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DeviceNotAvailable`, `MemoryError`, `UnsupportedOperation`, `PerformanceError`, and `SyncTimeout` are never constructed
[INFO] [stdout]   --> src/error.rs:10:5
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub enum NpuError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout]  9 |     #[error("Device not available")]
[INFO] [stdout] 10 |     DeviceNotAvailable,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 19 |     MemoryError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 25 |     UnsupportedOperation(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 31 |     PerformanceError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 34 |     SyncTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NpuError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `num_allocations` is never read
[INFO] [stdout]   --> src/memory.rs:11:9
[INFO] [stdout]    |
[INFO] [stdout]  8 | pub struct MemoryStats {
[INFO] [stdout]    |            ----------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 11 |     pub num_allocations: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `MemoryStats` has derived impls for the traits `Debug` and `Clone`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `allocate`, `deallocate`, `get_available_bytes`, `has_capacity`, and `reset` are never used
[INFO] [stdout]   --> src/memory.rs:34:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl MemoryManager {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 34 |     pub fn allocate(&self, bytes: usize) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 60 |     pub fn deallocate(&self, bytes: usize) {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 74 |     pub fn get_available_bytes(&self) -> usize {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 81 |     pub fn has_capacity(&self, bytes: usize) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 86 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `allocate_buffer` is never used
[INFO] [stdout]    --> src/memory.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl MemoryPool {
[INFO] [stdout]     | --------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn allocate_buffer(&self, size: usize) -> Result<Vec<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `reset` is never used
[INFO] [stdout]   --> src/perf_monitor.rs:77:12
[INFO] [stdout]    |
[INFO] [stdout] 27 | impl PerformanceMonitor {
[INFO] [stdout]    | ----------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 77 |     pub fn reset(&self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]  --> src/compute.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 5 | pub struct MatMulUnit {
[INFO] [stdout]   |            ---------- field in this struct
[INFO] [stdout] 6 |     peak_throughput_tops: f32,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `batched_gemm` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:54:12
[INFO] [stdout]     |
[INFO] [stdout]   9 | impl MatMulUnit {
[INFO] [stdout]     | --------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  54 |     pub fn batched_gemm(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn estimate_tops(&self, m: usize, k: usize, n: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `peak_throughput_tops` is never read
[INFO] [stdout]    --> src/compute.rs:110:5
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct ConvUnit {
[INFO] [stdout]     |            -------- field in this struct
[INFO] [stdout] 110 |     peak_throughput_tops: f32,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `conv1x1` and `estimate_tops` are never used
[INFO] [stdout]    --> src/compute.rs:123:12
[INFO] [stdout]     |
[INFO] [stdout] 113 | impl ConvUnit {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 123 |     pub fn conv1x1(
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 168 |     pub fn estimate_tops(&self, batch: usize, height: usize, width: usize, c_in: usize, c_out: usize) -> f32 {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `Computing` and `Error` are never constructed
[INFO] [stdout]   --> src/device.rs:13:5
[INFO] [stdout]    |
[INFO] [stdout] 10 | pub enum DeviceState {
[INFO] [stdout]    |          ----------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 13 |     Computing,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 14 |     Error,
[INFO] [stdout]    |     ^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceState` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `compute_units`, `frequency_mhz`, `power_tdp_watts`, and `vendor` are never read
[INFO] [stdout]   --> src/device.rs:23:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub struct DeviceInfo {
[INFO] [stdout]    |            ---------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 23 |     pub compute_units: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 24 |     pub frequency_mhz: u32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout] 25 |     pub power_tdp_watts: f32,
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^
[INFO] [stdout] 26 |     pub vendor: String,
[INFO] [stdout]    |         ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `DeviceInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset`, `get_memory_pool`, and `shutdown` are never used
[INFO] [stdout]    --> src/device.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  54 | impl NpuDevice {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn reset(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 116 |     pub fn get_memory_pool(&self) -> MemoryPool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn shutdown(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `DeviceRegistry` is never constructed
[INFO] [stdout]    --> src/device.rs:175:12
[INFO] [stdout]     |
[INFO] [stdout] 175 | pub struct DeviceRegistry {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `register`, `get_device`, and `num_devices` are never used
[INFO] [stdout]    --> src/device.rs:181:12
[INFO] [stdout]     |
[INFO] [stdout] 179 | impl DeviceRegistry {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 180 |     /// Create a new device registry.
[INFO] [stdout] 181 |     pub fn new() -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 188 |     pub fn register(&mut self, device: Arc<NpuDevice>) -> Result<u32> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 200 |     pub fn get_device(&self, device_id: u32) -> Result<Arc<NpuDevice>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 208 |     pub fn num_devices(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `conv_unit` is never read
[INFO] [stdout]   --> src/execution.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct ExecutionContext {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     conv_unit: ConvUnit,
[INFO] [stdout]    |     ^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `execute_batched_matmul`, `execute_conv1x1`, `get_metrics`, and `get_device` are never used
[INFO] [stdout]    --> src/execution.rs:49:12
[INFO] [stdout]     |
[INFO] [stdout]  16 | impl ExecutionContext {
[INFO] [stdout]     | --------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  49 |     pub fn execute_batched_matmul(&self, a: &ArrayD<f32>, b: &ArrayD<f32>) -> Result<ArrayD<f32>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout]  70 |     pub fn execute_conv1x1(
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 101 |     pub fn get_metrics(&self) -> crate::perf_monitor::PerformanceMetrics {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 106 |     pub fn get_device(&self) -> Arc<NpuDevice> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `BatchScheduler` is never constructed
[INFO] [stdout]    --> src/execution.rs:112:12
[INFO] [stdout]     |
[INFO] [stdout] 112 | pub struct BatchScheduler {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `new`, `submit_batch`, `get_context`, and `get_batch_size` are never used
[INFO] [stdout]    --> src/execution.rs:119:12
[INFO] [stdout]     |
[INFO] [stdout] 117 | impl BatchScheduler {
[INFO] [stdout]     | ------------------- associated items in this implementation
[INFO] [stdout] 118 |     /// Create a new batch scheduler.
[INFO] [stdout] 119 |     pub fn new(device: Arc<NpuDevice>, batch_size: usize) -> Self {
[INFO] [stdout]     |            ^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn submit_batch(&self, operations: Vec<(&ArrayD<f32>, &ArrayD<f32>)>) -> Result<Vec<ArrayD<f32>>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 139 |     pub fn get_context(&self) -> &ExecutionContext {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 144 |     pub fn get_batch_size(&self) -> usize {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `load_from_path` and `validate_input` are never used
[INFO] [stdout]   --> src/model.rs:58:12
[INFO] [stdout]    |
[INFO] [stdout] 51 | impl ModelRuntime {
[INFO] [stdout]    | ----------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 58 |     pub fn load_from_path(_path: &str) -> Result<Self> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 79 |     pub fn validate_input(&self, shape: &[usize]) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `DepthwiseConvolution`, `Activation`, `BatchNorm`, `Pooling`, `Concat`, and `Add` are never constructed
[INFO] [stdout]    --> src/model.rs:98:5
[INFO] [stdout]     |
[INFO] [stdout]  95 | pub enum LayerType {
[INFO] [stdout]     |          --------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout]  98 |     DepthwiseConvolution,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout]  99 |     PointwiseConvolution,
[INFO] [stdout] 100 |     Activation,
[INFO] [stdout]     |     ^^^^^^^^^^
[INFO] [stdout] 101 |     BatchNorm,
[INFO] [stdout]     |     ^^^^^^^^^
[INFO] [stdout] 102 |     Pooling,
[INFO] [stdout]     |     ^^^^^^^
[INFO] [stdout] 103 |     Concat,
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 104 |     Add,
[INFO] [stdout]     |     ^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `LayerType` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `name` is never read
[INFO] [stdout]    --> src/model.rs:110:9
[INFO] [stdout]     |
[INFO] [stdout] 109 | pub struct Layer {
[INFO] [stdout]     |            ----- field in this struct
[INFO] [stdout] 110 |     pub name: String,
[INFO] [stdout]     |         ^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `Layer` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_layers` is never used
[INFO] [stdout]    --> src/model.rs:178:12
[INFO] [stdout]     |
[INFO] [stdout] 163 | impl NeuralNetwork {
[INFO] [stdout]     | ------------------ method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 178 |     pub fn get_layers(&self) -> &[Layer] {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `set_frequency`, `enable_power_gating`, and `disable_power_gating` are never used
[INFO] [stdout]    --> src/power.rs:102:12
[INFO] [stdout]     |
[INFO] [stdout]  30 | impl DvfsController {
[INFO] [stdout]     | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 102 |     pub fn set_frequency(&self, domain: PowerDomain, level: usize) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 159 |     pub fn enable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 164 |     pub fn disable_power_gating(&self, domain: PowerDomain) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `optimize`, `apply_fusion`, `apply_constant_folding`, and `eliminate_dead_code` are never used
[INFO] [stdout]   --> src/optimizer.rs:37:12
[INFO] [stdout]    |
[INFO] [stdout] 21 | impl GraphOptimizer {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 37 |     pub fn optimize(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |            ^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 48 |     fn apply_fusion(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 53 |     fn apply_constant_folding(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 58 |     fn eliminate_dead_code(&self, graph: &mut ComputationGraph) -> Result<()> {
[INFO] [stdout]    |        ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `node_count` is never read
[INFO] [stdout]   --> src/optimizer.rs:83:9
[INFO] [stdout]    |
[INFO] [stdout] 80 | pub struct ComputationGraph {
[INFO] [stdout]    |            ---------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 83 |     pub node_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `validate` is never used
[INFO] [stdout]    --> src/optimizer.rs:124:12
[INFO] [stdout]     |
[INFO] [stdout]  86 | impl ComputationGraph {
[INFO] [stdout]     | --------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 124 |     pub fn validate(&self) -> Result<()> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `kernel_shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:145:19
[INFO] [stdout]     |
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout]     |     -----------   ^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `activation_type` is never read
[INFO] [stdout]    --> src/optimizer.rs:147:18
[INFO] [stdout]     |
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout]     |     ----------   ^^^^^^^^^^^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:149:13
[INFO] [stdout]     |
[INFO] [stdout] 149 |     Input { shape: Vec<usize> },
[INFO] [stdout]     |     -----   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `shape` is never read
[INFO] [stdout]    --> src/optimizer.rs:150:14
[INFO] [stdout]     |
[INFO] [stdout] 150 |     Output { shape: Vec<usize> },
[INFO] [stdout]     |     ------   ^^^^^
[INFO] [stdout]     |     |
[INFO] [stdout]     |     field in this variant
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variants `MatMul` and `Constant` are never constructed
[INFO] [stdout]    --> src/optimizer.rs:146:5
[INFO] [stdout]     |
[INFO] [stdout] 144 | pub enum ComputeNode {
[INFO] [stdout]     |          ----------- variants in this enum
[INFO] [stdout] 145 |     Convolution { kernel_shape: Vec<usize> },
[INFO] [stdout] 146 |     MatMul { output_shape: Vec<usize> },
[INFO] [stdout]     |     ^^^^^^
[INFO] [stdout] 147 |     Activation { activation_type: String },
[INFO] [stdout] 148 |     Constant { value: f32 },
[INFO] [stdout]     |     ^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ComputeNode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `device` is never read
[INFO] [stdout]  --> src/profiler.rs:8:5
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct Profiler {
[INFO] [stdout]   |            -------- field in this struct
[INFO] [stdout] 8 |     device: Arc<NpuDevice>,
[INFO] [stdout]   |     ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `start_time_ms` is never read
[INFO] [stdout]   --> src/profiler.rs:16:9
[INFO] [stdout]    |
[INFO] [stdout] 14 | pub struct ProfileEvent {
[INFO] [stdout]    |            ------------ field in this struct
[INFO] [stdout] 15 |     pub event_name: String,
[INFO] [stdout] 16 |     pub start_time_ms: f64,
[INFO] [stdout]    |         ^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `get_efficiency_gops_per_watt` is never used
[INFO] [stdout]   --> src/profiler.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 22 | impl ProfileEvent {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn get_efficiency_gops_per_watt(&self) -> f64 {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `clear` is never used
[INFO] [stdout]   --> src/profiler.rs:62:12
[INFO] [stdout]    |
[INFO] [stdout] 42 | impl Profiler {
[INFO] [stdout]    | ------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 62 |     pub fn clear(&mut self) {
[INFO] [stdout]    |            ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `event_count` is never read
[INFO] [stdout]   --> src/profiler.rs:96:9
[INFO] [stdout]    |
[INFO] [stdout] 90 | pub struct ProfileReport {
[INFO] [stdout]    |            ------------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 96 |     pub event_count: usize,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ProfileReport` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] warning: unused dependency `num_cpus`
[INFO] [stderr]  --> Cargo.toml:5:1
[INFO] [stderr]   |
[INFO] [stderr] 5 | num_cpus = "1.16"
[INFO] [stderr]   | ^^^^^^^^^^^^^^^^^
[INFO] [stderr]   |
[INFO] [stderr]   = note: `cargo::unused_dependencies` is set to `warn` by default
[INFO] [stderr] help: consider removing the dependency on `num_cpus`
[INFO] [stderr] warning: `npu-rs` (manifest) generated 1 warning
[INFO] running `Command { std: "docker" "inspect" "8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117", kill_on_drop: false }`
[INFO] [stdout] 8e010481547f98192cdb9255cdd6656273c181fa125e32de943418afb067a117
